import { ModelProviderCard } from "@/types/llm"

// ref: https://help.aliyun.com/zh/model-studio/getting-started/models
const Qwen: ModelProviderCard = {
  chatModels: [
    {
      tokens: 1_000_000,
      description: "通义千问超大规模语言模型，支持中文、英文等不同语言输入。",
      displayName: "Qwen Turbo",
      enabled: true,
      functionCall: true,
      id: "qwen-turbo-latest",
    },
    {
      tokens: 131_072,
      description: "通义千问超大规模语言模型增强版，支持中文、英文等不同语言输入。",
      displayName: "Qwen Plus",
      enabled: true,
      functionCall: true,
      id: "qwen-plus-latest",
    },
    {
      tokens: 32_768,
      description:
        "通义千问千亿级别超大规模语言模型，支持中文、英文等不同语言输入，当前通义千问2.5产品版本背后的API模型。",
      displayName: "Qwen Max",
      enabled: true,
      functionCall: true,
      id: "qwen-max-latest",
    },
    {
      tokens: 1_000_000,
      description: "通义千问超大规模语言模型，支持长文本上下文，以及基于长文档、多文档等多个场景的对话功能。",
      displayName: "Qwen Long",
      id: "qwen-long",
    },
    {
      tokens: 32_000,
      description:
        "通义千问大规模视觉语言模型增强版。大幅提升细节识别能力和文字识别能力，支持超百万像素分辨率和任意长宽比规格的图像。",
      displayName: "Qwen VL Plus",
      enabled: true,
      id: "qwen-vl-plus-latest",
      vision: true,
    },
    {
      tokens: 32_768,
      description:
        "通义千问超大规模视觉语言模型。相比增强版，再次提升视觉推理能力和指令遵循能力，提供更高的视觉感知和认知水平。",
      displayName: "Qwen VL Max",
      enabled: true,
      id: "qwen-vl-max-latest",
      vision: true,
    },
    {
      tokens: 34_096,
      description:
        "通义千问OCR是文字提取专有模型，专注于文档、表格、试题、手写体文字等类型图像的文字提取能力。它能够识别多种文字，目前支持的语言有：汉语、英语、法语、日语、韩语、德语、俄语、意大利语、越南语、阿拉伯语。",
      displayName: "Qwen VL OCR",
      id: "qwen-vl-ocr-latest",
      vision: true,
    },
    {
      tokens: 4096,
      description: "通义千问数学模型是专门用于数学解题的语言模型。",
      displayName: "Qwen Math Turbo",
      id: "qwen-math-turbo-latest",
    },
    {
      tokens: 4096,
      description: "通义千问数学模型是专门用于数学解题的语言模型。",
      displayName: "Qwen Math Plus",
      id: "qwen-math-plus-latest",
    },
    {
      tokens: 131_072,
      description: "通义千问代码模型。",
      displayName: "Qwen Coder Turbo",
      id: "qwen-coder-turbo-latest",
    },
    {
      tokens: 131_072,
      description: "通义千问代码模型。",
      displayName: "Qwen Coder Plus",
      id: "qwen-coder-plus-latest",
    },
    {
      tokens: 32_768,
      description: "QwQ模型是由 Qwen 团队开发的实验性研究模型，专注于增强 AI 推理能力。",
      displayName: "QwQ 32B Preview",
      id: "qwq-32b-preview",
    },
    {
      tokens: 32_768,
      description: "QVQ模型是由 Qwen 团队开发的实验性研究模型，专注于提升视觉推理能力，尤其在数学推理领域。",
      displayName: "QVQ 72B Preview",
      id: "qvq-72b-preview",
      vision: true,
    },
    {
      tokens: 131_072,
      description: "通义千问2.5对外开源的7B规模的模型。",
      displayName: "Qwen2.5 7B",
      functionCall: true,
      id: "qwen2.5-7b-instruct",
    },
    {
      tokens: 131_072,
      description: "通义千问2.5对外开源的14B规模的模型。",
      displayName: "Qwen2.5 14B",
      functionCall: true,
      id: "qwen2.5-14b-instruct",
    },
    {
      tokens: 131_072,
      description: "通义千问2.5对外开源的32B规模的模型。",
      displayName: "Qwen2.5 32B",
      functionCall: true,
      id: "qwen2.5-32b-instruct",
    },
    {
      tokens: 131_072,
      description: "通义千问2.5对外开源的72B规模的模型。",
      displayName: "Qwen2.5 72B",
      functionCall: true,
      id: "qwen2.5-72b-instruct",
    },
    {
      tokens: 1_000_000,
      description: "通义千问2.5对外开源的72B规模的模型。",
      displayName: "Qwen2.5 14B 1M",
      functionCall: true,
      id: "qwen2.5-14b-instruct-1m",
    },
    {
      tokens: 4096,
      description: "Qwen-Math 模型具有强大的数学解题能力。",
      displayName: "Qwen2.5 Math 7B",
      id: "qwen2.5-math-7b-instruct",
    },
    {
      tokens: 4096,
      description: "Qwen-Math 模型具有强大的数学解题能力。",
      displayName: "Qwen2.5 Math 72B",
      id: "qwen2.5-math-72b-instruct",
    },
    {
      tokens: 131_072,
      description: "通义千问代码模型开源版。",
      displayName: "Qwen2.5 Coder 7B",
      id: "qwen2.5-coder-7b-instruct",
    },
    {
      tokens: 131_072,
      description: "通义千问代码模型开源版。",
      displayName: "Qwen2.5 Coder 32B",
      id: "qwen2.5-coder-32b-instruct",
    },
    {
      tokens: 8000,
      description: "以 Qwen-7B 语言模型初始化，添加图像模型，图像输入分辨率为448的预训练模型。",
      displayName: "Qwen VL",
      id: "qwen-vl-v1",
      vision: true,
    },
    {
      tokens: 8000,
      description: "通义千问VL支持灵活的交互方式，包括多图、多轮问答、创作等能力的模型。",
      displayName: "Qwen VL Chat",
      id: "qwen-vl-chat-v1",
      vision: true,
    },
    {
      tokens: 128_000,
      description:
        "指令跟随、数学、解题、代码整体提升，万物识别能力提升，支持多样格式直接精准定位视觉元素，支持对长视频文件（最长10分钟）进行理解和秒级别的事件时刻定位，能理解时间先后和快慢，基于解析和定位能力支持操控OS或Mobile的Agent，关键信息抽取能力和Json格式输出能力强，此版本为72B版本，本系列能力最强的版本。",
      displayName: "Qwen2.5 VL 72B",
      id: "qwen2.5-vl-72b-instruct",
      vision: true,
    },
  ],
  checkModel: "qwen-flash",
  description:
    "通义千问是阿里云自主研发的超大规模语言模型，具有强大的自然语言理解和生成能力。它可以回答各种问题、创作文字内容、表达观点看法、撰写代码等，在多个领域发挥作用。",
  disableBrowserRequest: true,
  id: "qwen",
  modelList: { showModelFetcher: true },
  modelsUrl: "https://help.aliyun.com/zh/dashscope/developer-reference/api-details",
  name: "Aliyun Bailian",
  url: "https://www.aliyun.com/product/bailian",
}

export default Qwen
